<?php 
/**
 * @version		$Id: jce.php 131 2011-04-01 16:26:21Z happy_noodle_boy $
 * @package		JCE
 * @copyright	Copyright (C) 2009 Ryan Demmer. All rights reserved.
 * @copyright	Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
 * @license		GNU/GPL
 * This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */

defined('_JEXEC') or die('Restricted access');

// load base classes
require_once(dirname(__FILE__) . DS . 'includes' . DS . 'base.php');
// get the view
$view = JRequest::getCmd('view', 'cpanel');
$task = JRequest::getCmd('task');

// import library dependencies
jimport('joomla.application.component.helper');
jimport('joomla.application.component.controller');

// Require the base controller
require_once (dirname( __FILE__ ) . DS . 'controller.php');

// Load controller
$controllerPath = dirname(__FILE__).DS.'controller' . DS . $view . '.php';

if (file_exists($controllerPath)) {
    require_once ($controllerPath);

    $controllerClass = 'WFController'.ucfirst($view);
    $controller = new $controllerClass(array(
    	'base_path' => dirname(__FILE__)
    ));
} else {
    $controller = new WFController(array(
    	'base_path' => dirname(__FILE__)
    ));
}

// Process View
switch ($view) {
	case 'editor':
	break;
	default:
		// Set Tables path
		JTable::addIncludePath(dirname(__FILE__) . DS . 'tables');
		
		$acl =& JFactory::getACL();
		// Joomla! 1.5 ACL checks
		if (is_a($acl, 'JAuthorization')) {
			// Setup ACL
			$tasks 	= array(
				// Installer
				'install', 'remove', 'discover',
				// Standard
				'view', 'edit', 'save', 'apply', 'publish', 'unpublish', 'cancel', 'cancelEdit', 'orderup', 'orderdown', 'saveorder', 
				// Groups
				'copy', 'legend', 'addusers', 'removeusers',
				// Cpanel
				'repair', 'purge'
			);	
			foreach ($tasks as $auth) {
				$acl->addACL('com_jce', $auth, 'users', 'super administrator');
				$acl->addACL('com_jce', $auth, 'users', 'administrator');
				$acl->addACL('com_jce', $auth, 'users', 'manager');
			}
		} else {
			// Access check.
			if (!JFactory::getUser()->authorise('core.manage', 'com_jce')) {
				return JError::raiseWarning(404, WFText::_('JERROR_ALERTNOAUTHOR'));
			}
		}	
	    break;
}

// Perform the Request task
$controller->execute($task);
$controller->redirect();
?>
